package com.demo.service;


import com.baomidou.mybatisplus.extension.service.IService;
import com.demo.entity.Message;
import com.demo.entity.Patient;
import com.demo.enums.MessageRemindEnum;
import com.demo.enums.MessageSourceEnum;
import com.demo.response.Result;

import java.io.IOException;
import java.util.Date;
import java.util.Map;

/**
 * 消息记录表 服务类
 * @author zm
 * @since 2020-11-24
 */
public interface IMessageService extends IService<Message> {

    /**
     * 更新消息
     * @param message       实体对象
     * @return
     */
    Result updateMessageService(Message message);
    /**
     * 删除消息
     * @param messageId     消息ID
     * @param deletedUserId 删除人ID
     * @return
     */
    Result deleteMessageService(Integer messageId,Integer deletedUserId);
    /**
     * 消息列表
     * @param pageNumber        页码
     * @param pageSize          大小
     * @param status            状态
     * @return
     */
    Result messageServiceListV2(Integer pageNumber,Integer pageSize,Integer status);
    /**
     * 发送消息提醒
     * @param messageType
     * @param patient
     * @param messageSource  消息来源 0.His推送 1.评估 2.其他
     * @param msgContent
     * @param uid   用户 id
     * @return
     */
    boolean sendMessageNotification(MessageRemindEnum messageType, Patient patient, MessageSourceEnum messageSource, Map<String, Object> msgContent, Integer uid) throws IOException;

    /**
     * 发送消息提醒
     * @param messageType
     * @param patient
     * @param messageSource  消息来源 0.His推送 1.评估 2.其他
     * @param msgContent
     * @param uid   用户 id
     * @return
     */
    boolean sendMessageNotification(MessageRemindEnum messageType, Patient patient, MessageSourceEnum messageSource, Map<String, Object> msgContent, Integer uid, Date sendTime, Integer doctorAdviceId) throws IOException;
}
